package com.wfs.demo;

import java.util.Random;
import java.util.Scanner;

/**
 * 2 猜数字游戏方法
 * 该方法实现了一个简单的猜数字游戏，系统随机生成1-100之间的数字，
 * 用户通过输入猜测数字，系统会提示大了或小了，直到猜对为止。
 * 可以选择继续玩或退出游戏。
 */
public class Demo2 {
    public static void main(String[] args) {
        System.out.println("猜数字小游戏开始");
        guessNum();
        System.out.println("猜数字小游戏结束");

    }

    public static void guessNum() {
        // 创建Scanner对象用于接收用户输入
        Scanner scanner = new Scanner(System.in);
        Random random = new Random();
        // 外层循环，控制游戏是否继续
        while (true) {
            // 生成1-100之间的随机数作为目标数字
            int number = random.nextInt(100)+1;
            // 记录猜测次数的计数器
            int count = 0;
            // 内层循环，处理单次猜数字游戏
            while (true) {
                // 提示用户输入数字
                System.out.println("请输入一个数字：");
                // 读取用户输入的数字
                int input = scanner.nextInt();
                // 增加猜测次数
                count++;
                // 判断用户输入是否正确
                if (input == number) {
                    System.out.println("猜对了");
                    break; // 猜对后退出内层循环
                } else if (input < number) {
                    System.out.println("小了");
                    continue; // 数字小了继续循环
                } else {
                    System.out.println("大了");
                    continue; // 数字大了继续循环
                }

            }
            // 输出用户本次猜测的总次数
            System.out.printf("你一共猜了%d次\n", count);
            // 询问用户是否继续游戏
            System.out.println("是否继续猜？(y/n)");
            // 读取用户的选择
            String choice = scanner.next();
            // 如果用户输入"n"，则退出游戏
            if ("n".equals(choice)) {
                break;
            }
        }

    }

}
